home *** CD-ROM | disk | FTP | other *** search
/ FishMarket 1.0 / FishMarket v1.0.iso / fishies / 476-500 / disk_498 / cpalette / src / includes / windows.asm < prev   
Assembly Source File  |  1992-05-06  |  2KB  |  92 lines

  1. ; *** WINDOWS.ASM
  2.  
  3. MAKEWIN MACRO        ;MACRO TO SETUP MAKEWINDOW SUBROUTINE
  4.  LEA _THISTITLE,A0        ;\1 <= NULL TERMINATING TITLE
  5.  MOVE.L \1,(A0)            ;\2 <= LEFT
  6.  MOVE.W \2,D4            ;\3 <= TOP
  7.  MOVE.W \3,D5            ;\4 <= WIDTH
  8.  MOVE.W \4,D6            ;\5 <= HEIGHT
  9.  MOVE.W \5,D7
  10.  BSR MAKEWINDOW
  11.  TST.L D0
  12.  BEQ \6
  13.  IFNC '\7',''
  14.  MOVE.L D0,\7
  15.  ENDC
  16.  ENDM
  17.  
  18. ; NEW WINDOW STRUCTURE SUPPORT
  19.  
  20. MAKEWINDOW
  21.  MOVE.L #SIZE.NW,D0        ;D4 <= LEFT
  22.  MOVE.L #MEMF_CLEAR!MEMF_CHIP,D1        ;D5 <= TOP
  23.  SYSLIB ALLOCMEM        ;D6 <= WIDTH
  24.  TST.L D0            ;D7 <= HEIGHT
  25.  BEQ ERR_MAKEAWINDOWMEM
  26.  MOVE.L D0,NEWWINDOW
  27.  MOVE.L D0,A0
  28.  MOVE.W D4,NW.LEFTEDGE(A0)
  29.  MOVE.W D5,NW.TOPEDGE(A0)
  30.  MOVE.W D6,NW.WIDTH(A0)
  31.  MOVE.W D7,NW.HEIGHT(A0)
  32.  MOVE.B #-1,NW.DETAILPEN(A0)
  33.  MOVE.B #-1,NW.BLOCKPEN(A0)
  34.  MOVE.L _THISIDCMP,NW.IDCMPFLAGS(A0)
  35.  MOVE.L _THISFLAGS,NW.FLAGS(A0)
  36.  MOVE.L _THISTITLE,NW.TITLE(A0)
  37.  MOVE.W #80,NW.MINWIDTH(A0)
  38.  MOVE.W #20,NW.MINHEIGHT(A0)
  39.  MOVE.W #300,NW.MAXWIDTH(A0)
  40.  MOVE.W #90,NW.MAXHEIGHT(A0)
  41.  MOVE.W _THISTYPE,NW.TYPE(A0)
  42.  MOVE.L _THISSCREEN,NW.SCREEN(A0)
  43.  INTLIB OPENWINDOW
  44.  TST.L D0
  45.  BEQ.S ERR_MAKEAWINDOW
  46.  MOVE.L D0,_THISWINDOW
  47.  MOVE.L #SIZE.NW,D0
  48.  MOVEA.L NEWWINDOW,A1
  49.  SYSLIB FREEMEM
  50.  MOVE.L _THISWINDOW,D0
  51.  ZERO D1
  52.  RTS
  53. ERR_MAKEAWINDOWMEM
  54.  MOVE.L #CANTALLOCMEM,D1
  55. ENDE_MAKEAWINDOW
  56.  ZERO D0
  57.  RTS
  58. ERR_MAKEAWINDOW
  59.  MOVEQ.L #CANTOPENWINDOW,D1
  60.  BRA ENDE_MAKEAWINDOW
  61.  
  62.  IFD GFX
  63. _CLEARWINDOW
  64.  ZERO D0        ;A0 <= POINTER TO WINDOW STRUCTURE
  65. _FILLWINDOW
  66.  MOVE.L WW.RPORT(A0),RP
  67.  SETAPEN RP
  68.  MOVE.W WW.WIDTH(A0),D2
  69.  SUBI.W #4,D2
  70.  MOVE.W WW.HEIGHT(A0),D3
  71.  SUBI.W #2,D3
  72.  MOVE.W #2,D0
  73.  MOVE.W #10,D1
  74.  RECTFILL RP
  75.  RTS
  76.  ENDC
  77.  
  78. NEWWINDOW
  79.  DC.L 0
  80. _THISWINDOW
  81.  DC.L 0
  82. _THISTYPE
  83.  DC.W WBENCHSCREEN
  84. _THISTITLE
  85.  DC.L 0
  86. _THISIDCMP
  87.  DC.L CLOSEWINDOW!MENUPICK!MOUSEBUTTONS!NEWSIZE!GADGETUP!GADGETDOWN
  88. _THISFLAGS
  89.  DC.L ACTIVATE!WINDOWSIZING!WINDOWDRAG!WINDOWDEPTH!WINDOWCLOSE!SMART_REFRESH
  90. _THISSCREEN
  91.  DC.L 0
  92.